﻿using System.Windows.Media.Imaging;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;

namespace LOMM3API
{
    public class GameCommandCategory 
    {
        public  String Name {get; private set;}

        private List<GameCommandCategory>        _Children = new List<GameCommandCategory>();
        public  IEnumerable<GameCommandCategory> Sub {get {return _Children.AsEnumerable();} private set {}}
    }
    
    public abstract class LOMMGame
    {
        public String       Name          {get; protected set;}
        public String       Description   {get; protected set;}
        public BitmapImage  Icon          {get; protected set;}
        
        public IEnumerable<GameCommandCategory> Categories       {get; protected set;}
        public IEnumerable<GameCommandTemplate> CommandTemplates {get; protected set;}
    
        public virtual  Boolean CanRun() {return true;}
        public abstract IEnumerable<GameCommand> LoadCommands();
        public abstract Boolean SaveCommands();

        public virtual IEnumerable<String> Initialize() {return null;}
    }
}
